package com.jielin.handling.service.dzzj;

import com.jielin.handling.entity.auditresult.AuditResult;
import com.jielin.handling.entity.dzzj.OrgAndJYIp;
import com.jielin.handling.entity.dzzj.Video;
import com.jielin.handling.entity.tsuspect.TSuspec;
import com.jielin.handling.entity.video.PubliceVideo;
import com.jielin.handling.entity.vo.PoliceVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface VideoService {
    // 根据民警编号查询此民警记录仪上传的文件列表
    List<Video> findRecorderFileList(String policeCode, String fileType, String startTime, String endTime,
                                     String correlationStatus, String caseCode, String caseName);

    // 将记录仪文件与案件相关联
    int saveRecorderFileCorrelation(String id, String docId, String fileName, String fileUrl, String fileType,
                                    String thumburl);

    // 定时任务调用此方法插入记录仪视频
    void makeInsertGrapherVideo();

    List<Map> findCaseAVCorrelationRate(String unitCode);// 根据单位编号查询此单位辖区所有音视频关联率

    List<Map> findRateByUnitCode(String unitCode);// 根据单位编号查询此单位辖区所有案件的音视频关联率

    List<Map> findRateByPoliceCode(String policeCode, String policeId);// 根据民警编号查询此民警处理的案件音视频关联率

    Video findRecorderFileById(String fileId);// 根据记录仪文件id查询记录仪文件信息

    OrgAndJYIp findRecorderIPbyOrgNo(String orgNo);// 根据单位编号查询对应的警翼工作站ip

    List<Video> selectRandomVideo(Map map);// 视频管理中心随机取出6张图片

    List<Video> selectLatesVideo(Map map);// 最新上传----视频管理首页

    List<Video> selectRecommend(Map map);// 首页推荐

    List<Video> selectRandomSampling(Video video);// 随机抽查

    List<Video> selectRandomSampling2(Video video);

    List<Video> selectCaseVideo(Video video);// 办案视频

    List<Video> selectLawEnforcementVideo(Video video);// 执法视频

    List<Video> selectPublicVideo(Video video);// 公共视频

    List<Video> selectCaseByCode(String caseCode);

    int deleteVideoById(String id, String videoSource);// 删除视频

    int updateVideoRelationById(Video video);// 视频关联

    int editVideoById(Video video);// 视频编辑

    Map selectVideoById(String id, String videoSource);// 根据id查询视频详情信息、

    int uploadVideo(PubliceVideo vo, MultipartFile file) throws IOException;// 视频上传

    List<PoliceVo> selectPoliceByUnitcodes(String unitCodes, String policeCode);// 根据单位编号查询民警下拉框

    List<PoliceVo> selectUnicodeAndName();

    String selectPercentage(String policeId);//查询音视频关联率百分比

    List<TSuspec> aVCorrelation(TSuspec vo);// 根据state执法音视频关联情况列表, state=0 未关联,state=1,已关联

    List<AuditResult> selectAuditDetailsByCasecode(AuditResult vo);// 根据案件编号查询所偶有卷宗关联情况(执法音视频关联二级页面)

    List<Video> updateRquestOrg();

    /**
     * 同步三台合一音频文件到电子卷宗
     */
    void syncSHYFilesToDossierFiles();
}